草庐IT

javascript - JavaScript 中的类型定义

全部标签

ruby - 防止 ruby​​ sinatra 中的 session 固定

ruby中的大多数session固定主题都与Rails相关。sinatra中是否存在任何session固定漏洞?在rails中,我们通常建议在分配session之前执行reset_session。我们如何防止sinatra中的session固定? 最佳答案 Sinatra默认使用Rack::Protectiongem来防止许多常见漏洞。您可能对其session劫持保护特别感兴趣。这些是Rack::Protectiongem防止的一些事情:跨站请求伪造真实性token:如果给定的访问token与session中包含的token相匹配,

ruby-on-rails - 当加载根命名空间中的另一个同名类时,Rails 类加载会跳过命名空间类

我有两个命名空间,每个都有自己的Controller和演示器类:成员::DocumentsController成员::DocumentPresenterguest::DocumentsControllerGuest::DocumentPresenter两个演示者都继承自::DocumentPresenter。Controller在没有指定命名空间的情况下访问各自的演示者,例如:classGuest::DocumentsController这通常会在同一个命名空间中调用演示者。但是有时在开发环境中我看到正在使用base::DocumentPresenter。我怀疑原因是base::Doc

ruby - Chrome 的自定义配置文件

环境:MacOSX10.8.3、Ruby2.0.0p0、selenium-webdriver2.32.1、ChromeDriver26.0.1383.0。我想更改默认浏览器语言。我正在测试站点是否正确检测浏览器语言并以该语言显示页面。我能够将Firefox语言设置为德语:require"selenium-webdriver"profile=Selenium::WebDriver::Firefox::Profile.newprofile["intl.accept_languages"]="de"caps=Selenium::WebDriver::Remote::Capabilities.

ruby-on-rails - Rails 4.0 中的路由、路径助手和 STI

这让我发疯!我有两个模型Lion和Cheetah。两者都继承自Wildcat。classWildcat这里用的是STI。它们都通过ControllerWildcatsController进行处理。在那里,我有一个before_filer从params[:type]和所有其他东西中获取wildcat的type以使用正确的类.在我的routes.rb中,我创建了以下路线:resources:lions,controller:'wildcats',type:'Lion'resources:cheetahs,controller:'wildcats',type:'Cheetah'如果我现在想使

ruby - 基于 Ruby 语法的未定义局部变量

在下面的Ruby代码中,#!/usr/bin/envrubyx=truey=xandz=yputs"z:#{z}"它将按预期输出z:true。但在下一个中,我希望它具有相同的行为:#!/usr/bin/envrubyx=truez=yify=xputs"z:#{z}"结果undefinedlocalvariableormethod'y'formain:Object(NameError)这是为什么呢?我知道我正在做一个赋值,并隐式检查赋值以确定是否运行z=y。我还了解到,如果我在x=5行之后添加y声明y=nil,它将按预期通过并运行。但是,期望语言应该首先评估if部分,然后评估其内容,然

ruby-on-rails - 用于 Ruby 的 vim 中的全局 "Go to definition"?

自97年以来我一直在使用vi/vim进行各种快速编辑和管理任务,但最近才考虑使用它来替换Netbeans作为我选择的ruby​​编辑器。我发现一件事在Netbeans和Eclipse中非常有用的是Ctrl+Click“转到定义”功能,您可以在其中按住Ctrl键并单击一个类或方法,然后它将带您了解定义。现在,我玩过丰富的ctags和rails.vim,而且很接近,但没有雪茄。这就是我想要的:默认情况下在Netbeans和Eclipse中,您可以在本地rails中按住ctrl并单击本地方法或类项目,但你也可以ctrl+click定义在gems或用Ruby编写的系统库。以Netbeans为例

ruby-on-rails - 我应该将我的数据库查询测试放在 Rails 中的什么位置?

我来自Spring/hibernate背景。我注意到Rails没有dao和服务层。这确实加快了开发速度,但有时我不知道将测试放在哪里。现在,我一直在将我的模型方法和验证测试放在主要模型规范中。这个文件已经相当大了。测试查询的“标准”位置在哪里?我可以想象自己制作了大量固定装置/虚拟数据以确保我的查询按预期工作(可能是一个更好的主意,因为我是Rails的新手)。这些对于基本模型逻辑和验证测试来说并不是真正需要的。如果您能提供一些关于将这些测试放在哪里的建议,使用rails测试查询的最佳方法(尤其是具有多个连接的查询!),也许还有一些基本准则,说明它与使用DBunit/spring进行测试

ruby - 是否有一种直接的包罗万象的方法来记录在 Ruby 中的对象上调用的方法?

有没有一种快速的方法来跟踪在对象上调用的方法?通常,当我在gem的公共(public)界面之下的级别上工作时,我会遇到难以追踪的错误。最终,我最终通过源代码跟踪对象并将所有内容都记在脑海中。但是,如果能够在对象上调用类似#log_method_calls的东西,那么,比如说,调用它的所有方法都会打印到stdout或其他东西。有什么办法可以做到这一点? 最佳答案 有几种方法可以做到这一点,视情况而定。如果可以创建一个新对象而不是被观察对象,您可以使用method_missing轻松编写一个观察者类。classLogProxydefin

ruby - 确定 Ruby 1.9.3 中的字符编码

我的Rails3.2.2/Ruby1.9.3应用程序获取搜索请求,例如:http://booko.com.au/books/search?q=Fran%E7ois+Vergniolle+de+ChantalRuby/Rails接收此查询并对其进行解码-但假定它是UTF-8。在某些时候我得到一个:invalidbytesequenceinUTF-8app/models/product.rb:694:in`upcase'我认为它正在做这样的事情:q="Fran%E7ois+Vergniolle+de+Chantal"=>"Fran%E7ois+Vergniolle+de+Chantal"C

ruby - NoMethodError(未定义方法 `[]' 为 nil :NilClass)

我有一个非常奇怪的错误实例:NoMethodError(undefinedmethod`[]'fornil:NilClass):app/controllers/main_controller.rb:150:in`blockinfind_data_label'app/controllers/main_controller.rb:149:in`each'app/controllers/main_controller.rb:149:in`find_data_label'app/controllers/main_controller.rb:125:in`data_string'app/cont